gorgonia.org/gorgonia@v0.9.17/cuda modules/src/sigmoid64.cu (about)

     1  #define _USE_MATH_DEFINES
     2  #include <math.h>
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  
     9  __global__ void sigmoid64(double* A, int size)
    10  {
    11  	int blockId = blockIdx.x + blockIdx.y * gridDim.x + gridDim.x * gridDim.y * blockIdx.z;
    12  	int idx = blockId * (blockDim.x * blockDim.y * blockDim.z) + (threadIdx.z * (blockDim.x * blockDim.y)) + (threadIdx.y * blockDim.x) + threadIdx.x;
    13  	if (idx >= size) {
    14  		return;
    15  	}
    16  	A[idx] = 1 / (1 + pow(M_E, (double)(-1 * A[idx])));
    17  }
    18  	
    19  #ifdef __cplusplus
    20  }
    21  #endif